Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

85
Visualizações
[Javascript]: combina dos matrices de objetos que tienen valores de cadena y matriz
const FirstData = [ { title: 'Title 1', data: ['foo1', 'foo2', 'foo3', 'foo4', 'foo5'], }, { title: 'Title 2', data: ['a', 'b', 'c'], }, { title: 'Title 3', data: ['hello1', 'hello2', 'hello3', 'hello4', 'hello5'], }, ];

Los datos de SecondData se barajan tras bambalinas

 const SecondData = [ { title: 'Title 1', data: ['foo3', 'foo1', 'foo2'], }, { title: 'Title 2', data: ['b', 'c', 'a'], }, { title: 'Title 3', data: ['hello1', 'hello3', 'hello2'], }, ];

SALIDA ESPERADA (debe ser similar a SecondData pero las nuevas cadenas de los datos de FirstData deben insertarse, agregarse o fusionarse):

 [ { title: 'Title 1', data: ['foo3', 'foo1', 'foo2', 'foo4', 'foo5'], }, { title: 'Title 2', data: ['b', 'c', 'a'], }, { title: 'Title 3', data: ['hello1', 'hello3', 'hello2', 'hello4', 'hello5'], }, ];
about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Puede crear un mapa que indexe según el título y luego usar Set para asegurarse de no agregar duplicados. Algo como esto:

 const items = {} firstData.forEach(item => { items[item.title] = new Set([...item.data)] }) secondData.forEach(item => { const existingItem = items[item.title] if(!existingItem) { items[item.title] = new Set([...item.data)] } else { items[item.title] = new Set([...existingItem, ...item.data]) } }) const merged = Object.keys(items).map(title => ({ title: key, data: [...items[key]] }) )
about 4 years ago · Juan Pablo Isaza Relatório

0

Sugeriría concatenar las matrices y luego usar Array.reduce() para agrupar los valores por title .

Para cada entrada, fusionamos la matriz de datos usando un Set , que descartará cualquier valor duplicado en esta matriz.

 const FirstData = [ { title: 'Title 1', data: ['foo1', 'foo2', 'foo3', 'foo4', 'foo5'], }, { title: 'Title 2', data: ['a', 'b', 'c'], }, { title: 'Title 3', data: ['hello1', 'hello2', 'hello3', 'hello4', 'hello5'], }, ]; const SecondData = [ { title: 'Title 1', data: ['foo3', 'foo1', 'foo2'], }, { title: 'Title 2', data: ['b', 'c', 'a'], }, { title: 'Title 3', data: ['hello1', 'hello3', 'hello2'], }, ]; // Concatenate our data to get input... const input = FirstData.concat(SecondData); // Group each item by title. // For each item, merge the data array using a Set object const result = Object.values(input.reduce((acc, { title, data }) => { acc[title] = acc[title] || { title, data: [] }; acc[title].data = [...new Set([...acc[title].data, ...data])]; return acc; }, {})); console.log('Result:', result)

about 4 years ago · Juan Pablo Isaza Relatório

0

Puede tomar un Set y filtrar la matriz dada a partir de valores aleatorios.

 const merge = (a, b) => [ ...a, ...b.filter((s => v => !s.has(v))(new Set(a))) ], given = ['foo1', 'foo2', 'foo3', 'foo4', 'foo5'], random = ['foo3', 'foo1', 'foo2'], result = merge(random, given); console.log(...result);

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda